home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 1 / PC World Interactive 1 - Nisan 1997.iso / nostalji / bbs / faq / majordom.txt < prev    next >
Encoding:
Internet Message Format  |  1995-07-01  |  42.5 KB

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!usc!howland.reston.ans.net!news.cac.psu.edu!news.pop.psu.edu!barr
  2. From: barr@math.psu.edu (Dave Barr)
  3. Newsgroups: comp.mail.list-admin.software,comp.mail.misc,comp.mail.sendmail,comp.mail.smail,comp.answers,news.answers
  4. Subject: Majordomo Frequently Asked Questions
  5. Supersedes: <majordomo-faq_801756182@pop.psu.edu>
  6. Followup-To: comp.mail.list-admin.software
  7. Date: 28 Jun 1995 14:03:09 GMT
  8. Organization: The Pennsylvania State University
  9. Lines: 961
  10. Approved: news-answers-request@MIT.Edu
  11. Expires: 1 Aug 1995 14:03:01 GMT
  12. Message-ID: <majordomo-faq_804348181@pop.psu.edu>
  13. NNTP-Posting-Host: augusta.math.psu.edu
  14. Summary: This is a list of frequently asked questions about Majordomo,
  15.     a Perl-based package for managing mailing lists
  16. Xref: senator-bedfellow.mit.edu comp.mail.list-admin.software:642 comp.mail.misc:24459 comp.mail.sendmail:21718 comp.mail.smail:1788 comp.answers:12748 news.answers:47254
  17.  
  18. Version: $Id: majordomo-faq.html,v 1.74 1995/06/27 21:20:00 barr Exp barr $
  19. Archive-Name: mail/list-admin/majordomo-faq
  20. Posting-Frequency: monthly
  21.  
  22.    Table of Contents:
  23.     1. What is Majordomo and how can I get it?
  24.           + What is Majordomo?
  25.           + Where do I get it?
  26.           + How do I install it?
  27.           + How do I upgrade from an earlier release?
  28.           + Where do I report bugs or get help with Majordomo?
  29.           + Which is better, Majordomo or LISTSERV?
  30.     2. Problems setting up Majordomo
  31.           + What are the proper permissions and ownership of all
  32.             Majordomo files and directories?
  33.           + I get "Unknown mailer error" when majordomo runs
  34.           + I get "Permission denied at ..." when majordomo runs
  35.           + I get "shlock: open(">/some/path/...") when majordomo runs
  36.           + A file is visible via index, but can't 'get' it
  37.           + Majordomo seems to be taking many minutes to process commands
  38.           + I get an error "insecure usage" from the wrapper
  39.           + I get "majordomo: No such file or directory" from the wrapper
  40.           + I get an error "Can't locate majordomo.pl"
  41.           + I told my majordomo.cf where to archive the list, why isn't
  42.             it working?
  43.           + I'm accumulating lots of files called /tmp/resend.*.in and
  44.             .out,
  45.           + A list is visible via lists, but can't subscribe or 'get'
  46.             files
  47.           + I get "Out of Memory" when upgrading to 1.93
  48.           + I get warnings or errors when trying to compile 1.93's
  49.             wrapper
  50.           + Problems with 1.93's request-answer
  51.     3. Setting up mailing lists and aliases
  52.           + How do I direct bounces to the right address?
  53.           + Semi-automated handling of bounced mail
  54.           + What's this Owner-List and List-Owner stuff? Why both?
  55.           + How should I configure resend for Reply-To headers?
  56.           + How can I hide lists so they can't be viewed by 'lists'?
  57.           + How can I restrict a list such that only subscribers can send
  58.             mail to the list?
  59.           + Can I have the list owner or approval person be changeable
  60.             without intervention from the Majordomo owner?
  61.           + What about all of these passwords starting in version 1.90?
  62.           + How do I tell majordomo to handle "get"-ing of binary files?
  63.           + How do I set up a moderated list?
  64.           + How do I set up a digested version of a list?
  65.     4. Miscellaneous mailer and other problems
  66.           + Address with blanks are being treated separately
  67.           + Why aren't my digests going out?
  68.           + Why do I get duplicate mail sent to the list?
  69.           + How do I gate my list to and/or from a newsgroup?
  70.           + How can I improve Majordomo's performance?
  71.           + How can I handle X.400 addresses?
  72.             
  73.    This FAQ is Copyright 1995 by David Barr and The Pennsylvania State
  74.    University. This document may be reproduced, so long as it is kept in
  75.    its entirety and in its original format.
  76.    
  77.    Credits:
  78.    This FAQ originally written by Vincent D. Skahan. Many thanks to the
  79.    members of the majordomo-workers and majordomo-users mailing lists for
  80.    many of the questions and answers found in this FAQ. Thanks to
  81.    fen@comedia.com (Fen Labalme) for getting an HTML version started.
  82.    
  83.    You can get an HTML version of this FAQ on the World Wide Web at
  84.    http://www.math.psu.edu/barr/majordomo-faq.html. You can request a
  85.    copy by email by sending a message to mail-server@rtfm.mit.edu, with
  86.    the following text in the body:
  87.    
  88.  
  89. send usenet/comp.mail.list-admin.software/Majordomo_Frequently_Asked_Questions
  90.  
  91.    If you have any questions or submissions regarding this FAQ, send them
  92.    to barr@math.psu.edu (David Barr).
  93.    
  94.    
  95.      _________________________________________________________________
  96.    
  97.    
  98.    
  99. Section 1: What is Majordomo and how can I get it?
  100.  
  101.    
  102.    
  103.   WHAT IS MAJORDOMO?
  104.   
  105.    Majordomo is a program which automates the management of Internet
  106.    mailing lists. Commands are sent to Majordomo via electronic mail to
  107.    handle all aspects of list maintainance. Once a list is set up,
  108.    virtually all operations can be performed remotely, requiring no
  109.    intervention upon the postmaster of the list site.
  110.    
  111.      majordomo - n: a person who speaks, makes arrangements, or takes
  112.      charge for another. From latin "major domus" - "master of the
  113.      house". 
  114.      
  115.    
  116.    
  117.    Majordomo is written in Perl (at least 4.036). It should also work
  118.    under at least Perl 5.001a. It will not work with Perl 5.001!!! It has
  119.    reportedly worked with Perl 5.000 on some but not all platforms. Perl
  120.    5.001l is the latest release from the author. However, with Perl 5
  121.    you must edit majordomo and resend to look for instances of the "@"
  122.    character inside text strings "something@something". Change the "@" to
  123.    "\@". The same fix is also required if you want to run Majordomo under
  124.    OSF/1 on the DEC AXP systems with Perl 4 or 5. [from Jim Reisert]
  125.    
  126.    Many people have been having problems with DEC OSF/1 AXP systems with
  127.    Majordomo. Apparently Perl on the Alphas is not as stable as compared
  128.    to other platforms, and Majordomo tickles bugs in that port of Perl.
  129.    If you are having problems, please make sure you are running the very
  130.    latest version of Perl. If anyone has successfully gotten a recent
  131.    Majordomo to work on OSF/1 on the Alpha, please let the FAQ maintainer
  132.    know how.
  133.    
  134.    There have also been reported problems with the native compiler for
  135.    AIX 3.2.5. Perl compiled with that compiler will crash when running
  136.    Majordomo (even though it passes all the regression tests), however if
  137.    you compile Perl with gcc it will work.
  138.    
  139.    Majordomo was developed under UNIX based systems, but will probably
  140.    work on others. If you can get Perl to compile and run cleanly on your
  141.    system, and can send Internet mail by piping or calling an external
  142.    program (and that external program reads its list of recipients from a
  143.    plain text file), you can probably get Majordomo to work on a wide
  144.    variety of UNIX-based and non-UNIX based systems.
  145.    
  146.    Majordomo controls a list of addresses for some mail transport system
  147.    (like sendmail or smail) to handle. Majordomo itself performs no mail
  148.    delivery (though it has scripts to format and archive messages).
  149.    
  150.    Here's a short list of some of the features of Majordomo.
  151.    
  152.      * supports various types of lists, including moderated ones.
  153.      * List options can be set easily through a configuration file,
  154.        editable remotely.
  155.      * Supports archival and remote retrieval of messages.
  156.      * Supports digests.
  157.      * Written in Perl, - easily customizable and expandable.
  158.      * Modular in design.
  159.      * Includes support for FTPMAIL.
  160.        
  161.    
  162.    
  163.    
  164.    
  165.   WHERE DO I GET IT?
  166.   
  167.    
  168.    
  169.    Via anonymous FTP at: ftp://ftp.greatcircle.com/pub/majordomo/
  170.    
  171.    If you don't have Perl, you can get it from:
  172.    
  173.    ftp://prep.ai.mit.edu/pub/gnu/perl5.001.tar.gz together with the
  174.    patches in ftp://prep.ai.mit.edu/pub/gnu/perl5.001.pat.gz
  175.    
  176.    Information about Perl can be found from:
  177.    
  178.    http://www.metronet.com/perlinfo/perl5.html
  179.    
  180.    The FTPMAIL package can be found in
  181.    ftp://src.doc.ic.ac.uk/packages/ftpmail or any comp.sources.misc
  182.    archive (volume 37).
  183.    
  184.    
  185.    
  186.   HOW DO I INSTALL IT?
  187.   
  188.    Majordomo comes with a rather extensive README. Read this file
  189.    completely. This FAQ is meant to be a supplement to Majordomo's
  190.    documentation, not a replacement for it. If you have any questions
  191.    that this FAQ doesn't cover, chances are that it is covered in the
  192.    README or other documentation in the Majordomo distribution. For
  193.    anyone who is going to run a list, you must read Doc/list-owner-info
  194.    before trying to do anything. If you don't have access to the system
  195.    where your list is being run, the Majordomo maintainer who set up your
  196.    list should have sent it to you. Bug him if he didn't.
  197.    
  198.    If you have permission problems unpacking the distribution, try using
  199.    the 'o' flag to ignore user/group information.
  200.    
  201.    
  202.    
  203.   HOW DO I UPGRADE FROM AN EARLIER RELEASE?
  204.   
  205.    Be sure to browse the "Changes" and "Changelog" files to get an idea
  206.    what has changed. There currently is no canned set of instructions for
  207.    upgrading from an earlier release. The most straightforward method is
  208.    to simply install the current release in a different directory, (with
  209.    the same list/archive/digest directories) and change the mail aliases
  210.    for each list to use the new Majordomo scripts as soon as you feel
  211.    comfortable with the new setup.
  212.    
  213.    
  214.    
  215.   WHERE DO I REPORT BUGS OR GET HELP WITH MAJORDOMO?
  216.   
  217.    If you need help, there is a mailing list
  218.    majordomo-users@greatcircle.com, which is frequented by lots of users
  219.    of Majordomo. Report bugs to majordomo-workers@greatcircle.com.
  220.    
  221.    Be sure always to include which version of Majordomo you are using.
  222.    You should also include what operating system you are using, what
  223.    version of Perl, and what mailer (sendmail, smail, etc) and version
  224.    you are using, especially if you can't get Majordomo to work at all.
  225.    But first, you must have thoroughly read the ALL documentation in the
  226.    Majordomo distribution and this FAQ. If you got this FAQ from the
  227.    Majordomo distribution, or anywhere except from the WWW site at the
  228.    top of this document don't expect it to be up-to-date. It's probably
  229.    not.
  230.    
  231.    Please don't ask the FAQ maintainer for help on Majordomo. I will
  232.    probably accidently delete your message. Let me say that about 90% of
  233.    the answers I give are from the documentation or this FAQ. Most of the
  234.    rest are answered by reading the source. It's really not that hard to
  235.    figure out.
  236.    
  237.    Do NOT ask questions about Majordomo on the
  238.    list-managers@greatcircle.com list. That list is for general
  239.    discussions about running mailing lists, not for help on specific
  240.    packages. The same goes for the Usenet group
  241.    comp.mail.list-admin.policy.
  242.    
  243.    There is a good guide for people running majordomo lists at
  244.    http://www.uchicago.edu/a.docs/Mail/majordomo.admin.html. 
  245.    
  246.   WHICH IS BETTER, MAJORDOMO OR LISTSERV?
  247.   
  248.    For a good comparison of various mailing list managers (MLM's)
  249.    there's a good FAQ by Norm Aleks. It is posted monthly to news.answers
  250.    and comp.mail.list-admin.software. It's also mirrored at the following
  251.    URL. ftp://ftp.uu.net/usenet/news.answers/mail/list-admin/software-faq
  252.    You can also request a copy via email, by sending the text "get
  253.    mlm-software faq" in the body of a mail message to
  254.    LISTSERV@listserv.net. Contact naleks@library.ummed.edu (Norm Aleks)
  255.    for more information. 
  256.    
  257. Section 2: Problems setting up Majordomo
  258.  
  259.    
  260.    
  261.   WHAT ARE THE PROPER PERMISSIONS AND OWNERSHIP OF ALL MAJORDOMO FILES AND
  262.   DIRECTORIES?
  263.   
  264.    By far the biggest problem in setting up Majordomo is getting all the
  265.    permissions and ownerships right. In part this is due to the security
  266.    model that Majordomo uses, and it's also due to the fact that it's
  267.    hard to automate this process. That's due to improve in future
  268.    releases.
  269.    
  270.    Majordomo works by using a small C "wrapper" which works by allowing
  271.    Majordomo to always run as the "majordom" user and group that you
  272.    create. (note that the wrapper may disappear in a future release,
  273.    since its function could safely be replaced by features found in Perl
  274.    5) You can use a different name than "majordom" for your user and
  275.    group, but that is what is assumed for the explanations found in this
  276.    document. Because Majordomo does not run with any "special" (root)
  277.    priviliges, and because of the fact that Majordomo does a lot of
  278.    .lock-style locking (with shlock.pl), permissions on all files and
  279.    directories are critical to the correct operation of Majordomo.
  280.    
  281.     The wrapper
  282.     
  283.    The wrapper is compiled in one of two ways, by uncommenting the
  284.    correct section in the Makefile for your type of system. If you are
  285.    unsure if your system is POSIX or not, I would suggest you assume that
  286.    your system is not. (The default in 1.93 is POSIX) If things don't
  287.    work right (for example you get symptoms of permission problems or you
  288.    get an error from the wrapper saying to recompile using POSIX flags),
  289.    then try POSIX.
  290.    
  291.    If you are on a non-POSIX system, the wrapper must be both suid and
  292.    sgid (mode 6755) to "majordom". It must not be setuid root!
  293.    
  294.    OR
  295.    
  296.    On a POSIX system the wrapper must be setuid root, and double-check
  297.    that W_UID and W_GID are the uid and gid of the "majordom" user and
  298.    group. Don't set W_UID to be 0!
  299.    
  300.    Then compile the wrapper and install it. Do not install the wrapper on
  301.    an NFS filesystem with the "nosuid" option set. This will prevent the
  302.    wrapper from working.
  303.    
  304.     Majordomo files
  305.     
  306.    All files that majordomo creates will be mode 660, user "majordom",
  307.    group "majordom" if it is running correctly. The Log file that
  308.    Majordomo writes logging information to must have this same permission
  309.    and ownership. Make sure any files you create by hand (.config,
  310.    subscription lists) have this same permission and ownership. (the can
  311.    also be mode 664 if you don't need the contents to be private to
  312.    others) The permissions/ownership of the Majordomo programs and
  313.    related files themselves aren't as crititcal, but the must all be
  314.    readable to the "majordom" user/group. All Majordomo programs
  315.    (majordomo, resend, etc.) must have the execute bit set.
  316.    
  317.     Majordomo directories
  318.     
  319.    All directories under Majordomo's control ($homedir, $listdir,
  320.    $digest_work_dir, $filedir, as defined in your majordomo.cf) must be
  321.    mode 770 (or 775). They should be user and group owned by "majordom".
  322.    If want to allow a local user to be able to directly modify files or
  323.    for example copy files into a list's archive directory, you may make
  324.    the directory or file owned by that user. However directories and
  325.    files must be group-"majordom" writeable. 
  326.    
  327.   I GET "UNKNOWN MAILER ERROR" WHEN MAJORDOMO RUNS
  328.   
  329.    If something is wrong with your setup, the wrapper will often exit
  330.    with various return codes depending on what the problem is. In order
  331.    to really understand what is going on, look at the session transcript
  332.    further down in the bounce message to see the error which is returned
  333.    from the wrapper or from Majordomo. You should always see some sort of
  334.    error message.
  335.    
  336.    For information purposes, here are the current return codes from the
  337.    wrapper:
  338.      * 1: Usage error
  339.      * 2: Insecure usage (argument to wrapper can't contain a '/')
  340.      * 3: malloc() failed (out of memory)
  341.      * 4: set[ug]id() failed, compile with POSIX instead of BSD flags
  342.      * 5: execve() failed
  343.      * >5: return code from perl
  344.        
  345.    
  346.    
  347.    [reported by Russell Street]
  348.    You may also get problems when messages to majordomo are queued (for
  349.    example if you change sendmail's behavior to always queue messages
  350.    rather than perform immediate delivery). The problem was that if
  351.    sendmail queues a message it smashes the case in command lines and
  352.    addresses when the queue gets processed. This is inspite of the lines
  353.    shown by mailq. This is sendmail 5.x on Solaris 2.3, but it might
  354.    apply to other versions of sendmail. 
  355.    
  356.   I GET "PERMISSION DENIED AT ..." WHEN MAJORDOMO RUNS
  357.   
  358.   I GET "SHLOCK: OPEN(">/SOME/PATH/..." WHEN MAJORDOMO RUNS
  359.   
  360.   A FILE IS VISIBLE VIA INDEX, BUT CAN'T 'GET' IT
  361.   
  362.   MAJORDOMO SEEMS TO BE TAKING MANY MINUTES TO PROCESS COMMANDS
  363.   
  364.    These are all symptoms of a permission or ownership problem. See the
  365.    previous question. The directory specified of any "shlock" errors
  366.    indicates a problem with that directory. A "get" problem means the
  367.    ownership or permission of archive directory for that list is wrong. 
  368.    
  369.   I GET AN ERROR "INSECURE USAGE" FROM THE WRAPPER
  370.   
  371.    The argument to "wrapper" should be simply be the command, not the
  372.    full path to the command. "wrapper" has where to look compiled in to
  373.    it (the "W_BIN" setting in the Makefile) and for security reasons will
  374.    not let you specify another directory.
  375.    
  376.    Your alias should say for example:
  377.    
  378.    |"/path/to/majordomo/wrapper majordomo"
  379.    
  380.    
  381.    
  382.   I GET "MAJORDOMO: NO SUCH FILE OR DIRECTORY" FROM THE WRAPPER
  383.   
  384.    Make sure that the #! statement at the beginning of all the Majordomo
  385.    Perl executables contain the correct path to the perl program (the
  386.    default is /usr/local/bin/perl). Note many UNIXes have a 32 character
  387.    limit on that path -- make sure it doesn't exceed this limit. Make
  388.    sure also that majordomo and all the related scripts are in the W_BIN
  389.    directory as defined in the Makefile when you compiled the wrapper.
  390.    
  391.    
  392.    
  393.   I GET AN ERROR "CAN'T LOCATE MAJORDOMO.PL"
  394.   
  395.    [from Brent Chapman]
  396.    Majordomo adds "$homedir" from the majordomo.cf file to the @INC array
  397.    before it goes looking for "majordomo.pl". Since it's not finding it,
  398.    I'd guess you have one of two problems:
  399.    
  400.    1) $homedir is set improperly (or not set at all; there is no default)
  401.    in your majordomo.cf file.
  402.    
  403.    2) majordomo.pl is not in $homedir, or is not readable.
  404.    
  405.    [from John P. Rouillard]
  406.    3) Note that the new majordomo.cf file checks to see if the
  407.    environment variable $HOME is set first, and uses that for $homedir.
  408.    Since the wrapper always sets HOME to the correct directory, you get a
  409.    nice default, unless you are running a previously built wrapper, in
  410.    which case you may get the wrong directory.
  411.    
  412.    [from Andreas Fenner]
  413.    4) I had the same problem when I installed majordomo (1.62). My
  414.    Problem was a missing ";" in the majordomo.cf file - just in the line
  415.    before setting homedir .... My hint for you: Check your perl-files
  416.    carefully.
  417.    
  418.    
  419.    
  420.   I TOLD MY MAJORDOMO.CF WHERE TO ARCHIVE THE LIST, WHY ISN'T IT WORKING?
  421.   
  422.    [From John Rouillard]
  423.    The archive variables in majordomo.cf aren't used to archive anything.
  424.    You have to use a separate archive program, or a sendmail alias to do
  425.    the archiving. The info is used to generate a directory where the
  426.    archive files are being placed by some other mechanism.
  427.    
  428.    You are telling majordomo to look in the directory:
  429.    /usr/local/mail/majordomo/archive/listname
  430.    
  431.    for files that it should allow to be gotten using the get command.
  432.    
  433.    Majordomo comes with three different archive programs that run under
  434.    wrapper, that do various types of archiving. Look in the contrib
  435.    directory.
  436.    
  437.    
  438.    
  439.   I'M ACCUMULATING LOTS OF FILES CALLED /TMP/RESEND.*.IN AND .OUT WHAT ARE
  440.   THESE AND HOW CAN I GET RID OF THEM?
  441.   
  442.    This is a known bug in Majordomo 1.92. There was a typo in resend on
  443.    line 347. Change the double-quotes to angle-brackets. (just like the
  444.    other calls to unlink())
  445.    
  446.    
  447.    
  448.   A LIST IS VISIBLE VIA LISTS, BUT CAN'T SUBSCRIBE OR 'GET' FILES
  449.   
  450.    [From Brent Chapman]
  451.    I'll bet your list name has capital letters in it... Majordomo smashes
  452.    all list names to all-lower-case before attempting to use the list
  453.    name as part of a filename. So, while it's OK to advertise (for
  454.    instance) "Majordomo-Users" and have the headers say
  455.    "Majordomo-Users", the file names and archive directory names
  456.    themselves all need to be in lower case.
  457.    
  458.    
  459.    
  460.   I GET "OUT OF MEMORY" WHEN UPGRADING TO 1.93
  461.   
  462.    [summary of report from Matthew A. Braithwaite]
  463.    There appears to be a bug in error reporting in Majordomo 1.93. Under
  464.    certain circumstanses, if the directory containing your Log file is
  465.    not writeable by majordomo then it will get caught in an infinite
  466.    recursion, eventually allocating all the memory in the system. The fix
  467.    is to make sure that the directory containing your Log file is user
  468.    and group writeable, and user and group owned by your majordomo user
  469.    and group. This doesn't work in all cases. There have been reports
  470.    that some O/S have bugs in Perl's eval() routine causing this error.
  471.    
  472.    
  473.    
  474.   I GET WARNINGS OR ERRORS WHEN TRYING TO COMPILE 1.93'S WRAPPER
  475.   
  476.    You're probably trying to compile the wrapper using the default
  477.    Makefile on a non-POSIX system (like SunOS 4.x). As it says in the
  478.    Makefile, SunOS isn't POSIX -- you need to use the BSD rules.
  479.    
  480.    If you're having trouble compiling the wrapper under AIX, change the
  481.    line that says:
  482.  
  483. char setgroups_used = "setgroups_was_included"; /* give strings a hint */
  484.  
  485.    
  486.    
  487.    to
  488.  
  489. char *setgroups_used = "setgroups_was_included"; /* give strings a hint */
  490.  
  491.    
  492.    
  493.    The wrapper compilation may generate warnings under Linux and SunOS,
  494.    which you can safely ignore.
  495.    
  496.    
  497.    
  498.   PROBLEMS WITH 1.93'S REQUEST-ANSWER
  499.   
  500.    [ Summary by Yusef Pisan ]
  501.    There are a some known bugs in request-answer. If you get the error
  502.    'Undefined subroutine "main'lopen"' (or "main::lopen" for Perl 5), you
  503.    need to insert the line 'require "shlock.pl";' near the beginning of
  504.    request-answer. The syntax of the 'do_exec_sendmail' function is
  505.    different in majordomo than in majordomo.pl, so you need to change all
  506.    occurences of 'do_exec_sendmail' in request-answer to something like
  507.    'do_exec_sendmail_in_request_answer'.
  508.    
  509.    On line 41 where it exec()'s sendmail, change the "-f$list-request" to
  510.    "-f$list-approval".
  511.      _________________________________________________________________
  512.    
  513.    
  514.    
  515.    
  516.    
  517. Section 3: Setting up mailing lists and aliases
  518.  
  519.    
  520.    
  521.   HOW DO I DIRECT BOUNCES TO THE RIGHT ADDRESS?
  522.   
  523.    You should use 'resend' to filter all messages. Make sure the
  524.    "sender" keyword in the config file points to "owner-listname" and
  525.    that you have defined the "owner-listname" alias to point to the owner
  526.    of the list.
  527.    
  528.    What this does is force outgoing mail to have the out-of-band envelope
  529.    FROM be "owner-listname", and thus all bounces will be redirected to
  530.    that address. (Users often see this mirrored in the message body as
  531.    the "From " or "Return-Path:" header). 'resend' also inserts a
  532.    "Sender:" line with the same address to help people identify where it
  533.    came from, but that header is not used for the bounce address.
  534.    
  535.    If you are using sendmail v8.x, you don't have to use 'resend' to do
  536.    the same thing. You simply have to define an alias like this:
  537.    
  538.    owner-sample: joe,
  539.    
  540.    Note the trailing comma is necessary to prevent sendmail from
  541.    resolving the alias first before putting it in the header. Without the
  542.    comma, it will put "joe" in the envelope from instead of
  543.    "owner-sample". Either address will work, of course, but the generic
  544.    address is preferred should the owner ever change.
  545.    
  546.    However if you choose not to use 'resend', you will have to do without
  547.    much of majordomo's other features like moderating, administravia
  548.    checks, and others.
  549.    
  550.    
  551.    
  552.   SEMI-AUTOMATED HANDLING OF BOUNCED MAIL
  553.   
  554.    [From John Rouillard]
  555.    Just create a mailing list called "bounces". I usually set mine up as
  556.    an auto list just to make life easier.
  557.    
  558.    All that "bounce" script does is create an email message to majordomo
  559.    that says:
  560.  
  561.    approve [passwd] unsubscribe [listname] [address]
  562.    approve [passwd] subscribe bounces [address]
  563.  
  564.    The [address] and [listname], are given on the command line to bounce.
  565.    The address of the majordomo, and the passwords are retrieved from the
  566.    .majordomo file in your home directory.
  567.    
  568.    A sample .majordomo file might look like (shamelessly stolen from the
  569.    comments at the top of the bounce script):
  570.  
  571.    this-list       passwd1         Majordomo@This.COM
  572.    other-list      passwd2         Majordomo@Other.COM
  573.    bounces         passwd3         Majordomo@This.COM
  574.    bounces         passwd4         Majordomo@Other.COM
  575.  
  576.    A command of "bounce this-list user@fubar.com" will mail the following
  577.    message to Majordomo@This.COM:
  578.  
  579.    approve passwd1 unsubscribe this-list user@fubar.com
  580.    approve passwd3 subscribe bounces user@fubar.com (930401 this-list)
  581.  
  582.    while a command of "bounce other-list user@fubar.com" will mail the
  583.    following message to Majordomo@Other.COM:
  584.  
  585.    approve passwd2 unsubscribe other-list user@fubar.com
  586.    approve passwd4 subscribe bounces user@fubar.com (930401 this-list)
  587.  
  588.    Note that the date and the list the user was bounced from are included
  589.    as a comment in the address used for the "subscribe bounces" command.
  590.    
  591.    
  592.    
  593.   WHAT'S THIS OWNER-LIST AND LIST-OWNER STUFF? WHY BOTH?
  594.   
  595.    [From David Barr]
  596.    The "standard" is spelled out in RFC 1211 - "Problems with the
  597.    Maintenance of Large Mailing Lists".
  598.    
  599.    It's here where the "owner-listname" and "listname-request" concepts
  600.    got their start. (well it was before this, but this is where it was
  601.    first spelled out)
  602.    
  603.    Personally, I don't use "listname-owner" anywhere. You don't really
  604.    have to put both, since the "owner" alias is usually only for bounces,
  605.    which you add automatically anyway with resend's "-f" flag, or having
  606.    Sendmail v8.x's "owner-listname" alias.
  607.    
  608.    (while I'm on the subject) The "-approval" is a Majordomo-ism, and is
  609.    only necessary if you want bounces and approval notices to go to
  610.    different mailboxes. (though you'll have to edit some code in
  611.    majordomo and request-answer if you want to get rid of the -approval
  612.    alias, since it's currently hardwired in)
  613.    
  614.    So, to answer your question, I'd say "no". You don't have to have
  615.    both. You should just have "owner-list".
  616.    
  617.    
  618.    
  619.   HOW SHOULD I CONFIGURE RESEND FOR REPLY-TO HEADERS?
  620.   
  621.    Whether you should have a "Reply-To:" or not depends on the charter
  622.    of your list and the nature of its users. If the list is a discussion
  623.    list and you generally want replies to go back to the list, you can
  624.    include one. Some people don't like being told what to do, and prefer
  625.    to be able to choose whether to send a private reply or a reply to the
  626.    list just by using the right function on their mail agent. Take note
  627.    that if you do use a "Reply-To:", then some mail agents make it much
  628.    harder for a person on the list to send a private reply.
  629.    
  630.    If you are using resend, use the '-r ' flag to set the Reply-To field
  631.    to the list, or use the 'reply_to' config keyword for 1.9x or greater.
  632.    
  633.    
  634.    
  635.    
  636.   HOW CAN I HIDE LISTS SO THEY CAN'T BE VIEWED BY 'LISTS'?
  637.   
  638.    That is what advertise and noadvertise are for. The two keywords take
  639.    regular expressions that are matched against the from address of the
  640.    sender. A list display follows the rules:
  641.    
  642.     1. If the from address is on the list, it is shown.
  643.     2. If the from address matches a regexp in noadvertise (e.g. /.*/)
  644.        the list is not shown.
  645.     3. If the advertise list is empty, the list is shown unless 2
  646.        applies.
  647.     4. If the advertise list is non-empty, the from address must match an
  648.        address in advertise. Otherwise the list is not shown. Rule 2
  649.        applies, so you could allow all hosts in umb.edu except hosts in
  650.        cs.umb.edu.
  651.        
  652.    
  653.    
  654.    
  655.    
  656.   HOW CAN I RESTRICT A LIST SUCH THAT ONLY SUBSCRIBERS CAN SEND MAIL TO THE
  657.   LIST?
  658.   
  659.    For pre-1.9x versions of majordomo, see the -I option to resend. For
  660.    1.9x this is the restrict_post keyword in the config file. Just set it
  661.    to the filename that holds the list of subscribers. Unfortunately this
  662.    means you probably will need help from the Majordomo maintainer in
  663.    setting it if you don't have access to the host machine. This is due
  664.    to be improved in a future release of Majordomo.
  665.    
  666.    However, there is a problem with either of these methods. Majordomo
  667.    works by filtering the messages coming in through the "listname"
  668.    alias, doing its dirty work, then passing the resulting message out to
  669.    another alias you define like "listname-outgoing". If you trust people
  670.    to not send mail directly to the "listname-outgoing" alias, then
  671.    you'll be fine. If however you're not trusting, there are several
  672.    steps to make sure people don't bypass the restrictions of the list.
  673.    
  674.    There are several methods. First you need to change your
  675.    "listname-outgoing" alias such that it is not obvious. Next, you need
  676.    to make it such that people can't find out what your -outgoing alias
  677.    is.
  678.    
  679.    You can use the "@filename" directive in resend to move the
  680.    command-line options of resend into a file readable only by the
  681.    majordomo user/group. This will make it such that you can't find out
  682.    the -outgoing address by connecting to your mailer and doing an EXPN
  683.    or VRFY. The "@filename" directive seems to have fallen into
  684.    undocumentation for some reason. This should be fixed in future
  685.    releases.
  686.    
  687.    Another more direct approach is to simply disable EXPN or VRFY
  688.    altogether. See the documentation for your mailer on how to do this.
  689.    
  690.    Sendmail 8.x will unfortunately log your -outgoing alias in the
  691.    "Received:" lines. To get around this you need to specify more than
  692.    one address for the list name argument to resend. The easiest way is
  693.    to simply put a comma after your -outgoing address. (for example
  694.    "mylist: :include:/var/lists/mylist,") For Sendmail 8.x you must not
  695.    define an alias 'owner-mylist-seekrit' to be something like
  696.    'owner-mylist,' (with the commma). Otherwise sendmail will set the
  697.    envelope address of outgoing mail to contain your secret outgoing
  698.    alias.
  699.    
  700.    Finally it should be noted that it is impossible with any method to
  701.    prevent people from forging mail as someone on the list, and sending
  702.    to the list that way.
  703.    
  704.    
  705.    
  706.   CAN I HAVE THE LIST OWNER OR APPROVAL PERSON BE CHANGEABLE WITHOUT
  707.   INTERVENTION FROM THE MAJORDOMO OWNER?
  708.   
  709.    Sure! Just make owner-listname and/or listname-approval be another
  710.    majordomo list. (probably hidden, for simplicity's sake)
  711.    
  712.    
  713.    
  714.   WHAT ABOUT ALL OF THESE PASSWORDS STARTING IN VERSION 1.90?
  715.   
  716.    Think of three separate passwords:
  717.     1. A master password that can be used by both resend and majordomo
  718.        contained in [listname].passwd. To be used by the master list
  719.        manager when using writeconfig commands etc. This allows someone
  720.        who handles a number of mailing lists all using the same password.
  721.     2. A password for the manager of this one list. The admin_passwd can
  722.        be used by subsidiary majordomo list maintainers.
  723.     3. A password for those concerned with the list content
  724.        (approve_passwd)
  725.        
  726.    This way the administration and moderation functions can be split. The
  727.    original reason for maintaining [listname].passwd was to allow a new
  728.    config file to be put in if the config file was trashed and the
  729.    admin_password was obliterated, and may still be useful to allow a
  730.    single password to be used for admin functions by the majordomo admin
  731.    or some other "superadmin".
  732.    
  733.    Note that the admin passwd in the config file is not a file name, but
  734.    the password itself. This is the only way that the list-maintainer
  735.    could change the password since they wouldn't have access to the file.
  736.    
  737.    
  738.    
  739.    
  740.   HOW DO I TELL MAJORDOMO TO HANDLE "GET"-ING OF BINARY FILES?
  741.   
  742.    Majordomo is not designed to be a general-purpose file-by-mail
  743.    system. If you want to do anything more than trivial "get"-ing of text
  744.    files (archives, etc) than you should get and install ftpmail.
  745.    Majordomo has hooks to allow transparent access to files via ftpmail
  746.    (see majordomo.cf). See the beginning of this FAQ for where to get
  747.    ftpmail.
  748.    
  749.    
  750.    
  751.   HOW DO I SET UP A MODERATED LIST?
  752.   
  753.    First, you need to tell Majordomo that the list is moderated. In the
  754.    configuration file for the list, you set "moderated = yes". If you're
  755.    using Majordomo 1.9x or greater, do not try to use the now-deprecated
  756.    "-A" option to resend. In fact if you're using 1.9x or greater, you
  757.    shouldn't be using ANY options to resend except "-h" and "-l".
  758.    
  759.    Any mail which is not "approved", gets bounced with "Approval
  760.    required". If the moderator wishes to approve the message for the
  761.    list, then you need to tag the message as "approved" and send it to
  762.    the list. The "approve" script which comes with Majordomo does this
  763.    for you. If you don't have access to "approve" (e.g. you're not on a
  764.    UNIX system with Perl), you have to do it by hand. The easiest way is
  765.    to forward the original message to the list, add the line "Approved:
  766.    approval-password" to the very first line of the body, leave a blank
  767.    line, and then the contents of the original message. (meaning there
  768.    should be a blank line before and after the "Approved:" line.) 
  769.    
  770.   HOW DO I SET UP A DIGESTED VERSION OF A LIST?
  771.   
  772.    [ Modified from explanation given by jmb@kryten.atinc.com (Jonathan
  773.    M. Bresler)]
  774.      * Create aliases for the mailing list and the digest. See section
  775.        2.2 of the README for an example.
  776.      * create an alias for the majordom(o) user, so that his cron
  777.        generated mail comes to me, rather than just piling up in
  778.        /usr/local/mail/majordom.
  779.      * create the list's and the digest's files, (widget, widget-digest,
  780.        widget.config, widget-digest.config, etc.). Edit the
  781.        widget-digest.config file and make sure all the digest options are
  782.        set to your tastes.
  783.      * create the digest directory and archive directory. See FAQ section
  784.        2 on how to set permissions on all majordomo files and
  785.        directories. You must have archives if you have digests so the
  786.        digester can make the digest. You can purge the archive after the
  787.        digest is generated.
  788.      * Add yourself to both the mailing list and its digest so you can
  789.        monitor what happens...at least for a while (not a bad idea to
  790.        create a dummy user, and subscribe him to both the mailing list
  791.        and its digest. This preserves a record of messages for debugging.
  792.        Don't forget to remove this account and unsubscribe it after
  793.        debugging.)
  794.      * Optionally you may add a crontab for majrodom, to push out a
  795.        digest at set intervals regardless of the number of queued
  796.        messages. Of course you can do this from any account not just
  797.        majordom, as long as the password is correct. See the question Why
  798.        aren't my digests going out?".
  799.        
  800.    
  801.      _________________________________________________________________
  802.    
  803.    
  804.    
  805.    
  806.    
  807. Section 4: Miscellaneous mailer problems
  808.  
  809.    
  810.    
  811.   ADDRESS WITH BLANKS ARE BEING TREATED SEPARATELY
  812.   
  813.    If a subscriber to the list is
  814.    John Doe <jdoe@node.com>
  815.    
  816.     it gets treated these as the three addresses:
  817.    John
  818.    Doe
  819.    <jdoe@node.com>
  820.    
  821.    [From Alan Millar]
  822.    Majordomo does not treat these as three addresses. Apparently your
  823.    mailer does.
  824.    
  825.    Remember that all Majordomo does is add and remove addresses from a
  826.    list. Majordomo does not interpret the contents of the list for
  827.    message distribution; the system mailer (such as sendmail) does.
  828.    
  829.    I'm using SMail3 instead of sendmail, and it has an alternative (read
  830.    "stupid") view of how mixed angle-bracketed and non-angle-bracketed
  831.    addresses should be interpreted. I found that putting a comma at the
  832.    end of each line was effective to fix the problem, and I got to keep
  833.    my comments. So I patched Majordomo to add the comma at the end of
  834.    each address it writes to the list file.
  835.    
  836.    You can also add the $listname.strip option so that none of the
  837.    addresses are angle-bracketed. (the "strip" config option for 1.90)
  838.    
  839.    
  840.    
  841.   WHY AREN'T MY DIGESTS GOING OUT?
  842.   
  843.    
  844.  
  845. >I'm not sure how to set up the digest feature of majordomo 1.92
  846. >to send digests out.  Currently, it is digesting incoming mail,
  847. >but that's all it's doing.
  848.  
  849.    [from John Rouillard]
  850.  
  851.   echo mkdigest [digest-name] [digest-password] | mail majordomo@...
  852.  
  853.    This will force a digest to be created. Or you can set the max size in
  854.    the digest list config file down low, and force automatic generation.
  855.    There are some patches for 1.92 that will allow other ways of
  856.    specifying automatic digest sending. The patch is in the contrib
  857.    directory.
  858.    
  859.    
  860.    
  861.   WHY DO I GET DUPLICATE MAIL SENT TO THE LIST?
  862.   
  863.    I've you're running MMDF, read on: [From Gunther Anderson]
  864.    Well, I can tell you what happened to me recently. We use MMDF here,
  865.    which certainly colors the picture a little. What was happening here
  866.    was that MMDF was verifying the validity of the whole mailing list
  867.    before returning from the Submit call. The thing calling the Submit
  868.    would time out and close, but the Submit itself would still be running
  869.    somewhere. The calling routine would believe that the message had
  870.    failed in its delivery, but the Submit would eventually succeed. The
  871.    calling process would try again some time later. This, of course, is
  872.    bad. The larger the list got, the more addresses there were to verify
  873.    (verification was really just a DNS search on the target machine
  874.    name), the more likely, under load, that the message would duplicate.
  875.    We finally got so large, with so many international addresses (which
  876.    seem to timeout on DNS queries much more ofen than US addresses) that
  877.    we were always duplicating. Infinitely (until I killed the original
  878.    submitter).
  879.    
  880.    The solution for us was MMDF-specific. We used a different channel for
  881.    submission and delivery, one which deliberately doesn't verify the
  882.    addresses before accepting a job. We used the list-processor channel,
  883.    and only had to check that the listname-request name was set properly,
  884.    because list-processor insists on making listname-request the envelope
  885.    "From " header name.
  886.    
  887.    If you're running Sendmail, this is more rare. There have been
  888.    unconfirmed reports that on some systems having the queue process
  889.    interval set too short can cause problems, even though sendmail is
  890.    supposed to handle this. Workarounds are to increase your queue
  891.    process interval (-q flag), or decrease the interval between queue
  892.    checkpoints (OC flag in sendmail.cf).
  893.    
  894.    There have been many reports from Linux users complaining about
  895.    duplicate mail. The problem seems to be that flock() under Linux is
  896.    broken. This may be fixed in a future release, but for now in
  897.    sendmail's conf.h in the #ifdef __linux__ section add a line #define
  898.    HASFLOCK 0. There are also reports that some versions of the libc have
  899.    problems, and that linking with the libresolv.a from a recent BIND
  900.    version will work around the problem.
  901.    [ Please let me know if you have any more information --ed ] 
  902.    
  903.   HOW DO I GATE MY LIST TO AND/OR FROM A NEWSGROUP?
  904.   
  905.    The easiest method is to use a program called newsgate. Send mail to
  906.    rsalz@uunet.uu.net (Rich Salz) for a copy. Unless he tells you
  907.    otherwise, do not redistribute what he sends you. Installation
  908.    instructions are straightforward, it provides sample entires for your
  909.    newsfeeds/sys file and aliases entries. The newsgate package includes
  910.    news2mail and mail2news. 
  911.    
  912.   HOW CAN I IMPROVE MAJORDOMO'S PERFORMANCE?
  913.   
  914.    
  915.    
  916.     Mail to list throughput
  917.     
  918.    Majordomo does very little except pass each message to the list
  919.    through 'resend', and then pass it on to your mailer for distribution.
  920.    Improving your mailer is the first step to improving speed of delivery
  921.    of mail to the list. Upgrading your sendmail to version 8.6.x or
  922.    greater will improve things greatly, as this version has a lot of
  923.    enhancements which use connections more efficiently. For most lists,
  924.    this is enough. Majordomo itself doesn't use very much resources
  925.    except perhaps memory. Adding more memory will help if your machine
  926.    does a lot of paging during mail delivery. Using other mailers instead
  927.    of sendmail like ZMailer has met with varying success.
  928.    
  929.    If your lists are very large you may try installing bulk_mailer, by
  930.    Keith Moore. It pre-sorts the list into chunks grouped by site, and
  931.    passes the resulting chunks off to individual sendmail processes for
  932.    delivery (see note next paragraph). Get it from
  933.    ftp://cs.utk.edu/pub/moore/bulk_mailer/. It installs simply by
  934.    replacing your usual -outgoing alias with (line wrapped for clarity):
  935.  
  936. sample-outgoing: |"/path/to/bulk_mailer owner-sample@your.site
  937.     /path/to/lists/sample"
  938.  
  939.    This has reportedly resulted in dramatic speedups in delivery times,
  940.    on the order of several times faster. Note this works just as well on
  941.    digested lists as well as normal lists. bulk_mailer does have one
  942.    problem. It doesn't understand parenthesized comments in addresses,
  943.    resulting in incorrect sorting and reduced performance. Either your
  944.    list must be configured with strip=yes in the configuration file, or a
  945.    patch has recently been submitted to the author for a -m option to
  946.    strip these comments before sorting. Look for it to be incorporated
  947.    soon.
  948.    
  949.    The restrict_post list option with large lists can cause a significant
  950.    slowdown in mail delivery, since resend has to do a sequential search
  951.    through the subscription list for each mail sent to the list (to
  952.    verify that the sender is subscribed to the list). Think twice about
  953.    using this option with very large lists.
  954.    
  955.     Majordomo command processing
  956.     
  957.    Most of the improvements in this are are experimental and not widely
  958.    available or not yet completed but scheduled for future releases. Some
  959.    areas include: improvements in shlock.pl to use exponential backoffs
  960.    to reduce contention and starvation of locks, using some sort of
  961.    dbz-style database for subscription lists to speed up subscribe and
  962.    unsubscribe commands, and changes in the configuration file system to
  963.    allow faster parsing and faster execution of certain commands such as
  964.    "lists". If you are interested in working on improvements in this
  965.    area, join the majordomo-workers list mentioned above. If you make any
  966.    specific patches or additions available, please let me know so I can
  967.    add references to it here. 
  968.    
  969.   HOW CAN I HANDLE X.400 ADDRESSES?
  970.   
  971.    Majordomo by default treats addresses starting with "/" as "hostile",
  972.    and won't let people subscribe. This is to prevent someone from
  973.    subscribing a majordomo-owned filename to the list, and being able to
  974.    write by sending mail to the list. Unfortunately, all X.400 addresses
  975.    begin with a "/". Starting in Majordomo 1.93, there are three
  976.    variables in the majordomo.cf which control how majordomo treats these
  977.    sorts of addresses. See the end of the sample.cf in the Majordomo 1.93
  978.    distribution for a complete explanation.
  979.